#pragma once
#include<iostream>
#include<vector>
#include<queue>
#include<assert.h>
#include<bitset>
#include<unordered_map>
#include"../myServer/Log.hpp"
#include<fstream>
#include"../myServer/Protocol.hpp"
#include<random>
#include<time.h>
namespace Dec
{
    

    //模式--影响学习进度
    const static size_t MOD_FRIENDLY = 1;//友好
    const static size_t MOD_NORMAL = 0;//正常
    const static size_t MOD_UNFRIENDLY = 2;//非友好

    //态度--展现情绪
    const static size_t ATT_NORMAL = 0;//正常
    const static size_t ATT_PUZZLE = 1;//疑惑
    const static size_t ATT_INTEREST = 2;//兴趣-开心
    const static size_t ATT_INDIFFERENT = 3; //冷漠

    const static size_t ATT_FAVORITE = 4;//喜欢
    const static size_t ATT_GRIEVANCE = 5;//愤愤不平-委屈
    const static size_t ATT_AFRAID = 6;//害怕
    const static size_t ATT_EXPECTATION = 7;//期待
    const static size_t ATT_SPEECHLESS = 8;//无语
    const static size_t ATT_EXHAUSTED = 9;//疲惫
    
    //身份
    const static size_t NAME_UNKNOW = 255;
    const static size_t NAME_CHENGUO=0;
    const static size_t NAME_CHENYJ=1;
    const static size_t NAME_DABING=2;
    const static size_t NAME_FUCHENG=3;
    const static size_t NAME_KOUZY=4;
    const static size_t NAME_LINGDW=5;
    const static size_t NAME_LIUBING=6;
    const static size_t NAME_RAMBO=7;
    const static size_t NAME_TUJIAN=8;
    const static size_t NAME_YANCL=9;
    const static size_t NAME_ZHUXH=10;

    //手势命令
    const static size_t HANDER_UNKNOW=0;
    const static size_t HANDER_FIST_BUMPS=1;//碰拳--碰拳
    const static size_t HANDER_ANGRY=2;//生气-- 委屈表情
    const static size_t HANDER_HAPPY=3;//开心--舞蹈
    const static size_t HANDER_DISAGREE=4;//错误--默认
    const static size_t HANDER_SITDOWN=5;//坐下--坐下
    const static size_t HANDER_HELLO=6;//打招呼--默认
    const static size_t HANDER_AGREE=7;//夸赞--开心表情
    const static size_t HANDER_SHOOT=8;//枪击--趴下
    const static size_t HANDER_BYE=9;//再见
    const static size_t HANDER_PINK_UP=10;//鄙视--愤怒表情
    const static size_t HANDER_THUM_UP=11;// 赞同--
    const static size_t HANDER_FUCK=12;//激怒--愤怒表情
    const static size_t HANDER_OK=13;//同意--默认
    const static size_t HANDER_LOVE=14;//喜欢--喜欢表情
    const static size_t HANDER_ROLL=15;//跳舞--跳舞

    //语音命令
    const static size_t ORDER_UNKNOW = 0;
    const static size_t ORDER_LEFT = 1;//左转--默认
    const static size_t ORDER_RIGHT= 2;//右转--默认
    const static size_t ORDER_WALK = 3;//前进--默认
    const static size_t ORDER_BACK = 4;//后退--默认
    const static size_t ORDER_GETDOWN = 5;//趴下
    const static size_t ORDER_SITDOWN = 6;//坐下
    const static size_t ORDER_DANCE = 7;//跳舞
    const static size_t ORDER_PUSHUP = 8;//俯卧撑
    const static size_t ORDER_HALLO = 9;//打招呼
    const static size_t ORDER_JUMP = 10;//跳跃
    const static size_t ORDER_BUMPFISR = 11;//碰拳
    const static size_t ORDER_SHAKEHAND = 12;//握手
    const static size_t ORDER_AGREE = 13;//正确--默认
    const static size_t ORDER_DISAGREE = 14;//错误--默认
    const static size_t ORDER_MOONWALK = 15;//太空步
    const static size_t ORDER_STOP = 16;//停止--默认
    const static size_t ORDER_REVOLVE = 17;//转圈
    const static size_t ORDER_NEAR = 18;//靠近--默认
    const static size_t ORDER_RUN = 19;//跑--默认
    const static size_t ORDER_SLID = 20;//滑步
    const static size_t ORDER_TURNBACK = 21;//向后转
    const static size_t ORDER_EXIT = 250;//退出
/////////////////////////////执行///////////////////////////////////////

    //表情
    const static size_t EMO_UNKNOW = 255;
    const static size_t EMO_EXPECT=1;//期待
    const static size_t EMO_STUNNED=2;//惊呆
    const static size_t EMO_CONFUSION=3;//困惑
    const static size_t EMO_HAPPY=4;//开心
    const static size_t EMO_INDIFFERENT=5;//冷漠
    const static size_t EMO_LOVE=6;//喜欢
    const static size_t EMO_SAD=7;//悲伤
    const static size_t EMO_SPEECHLESS=8;//无语
    const static size_t EMO_HELLO=9;//打招呼
    const static size_t EMO_ANGRY=10;//生气
    const static size_t EMO_PAIN=11;//疼痛
    const static size_t EMO_EXHAUSTED=12;//疲惫
    const static size_t EMO_GRIEVANCE=13;//委屈
    const static size_t EMO_ENJOY =14;//享受
    const static size_t EMO_VERTIGO=15;//眩晕
    const static size_t EMO_NORMAL_1=0;//正常1--长
    const static size_t EMO_NORMAL_2=30;//正常2--短


    //动作
    const static size_t ACTION_UNKNOW=255;
    const static size_t ACTION_INIT=0;
    const static size_t ACTION_WALK=1;//走---默认
    const static size_t ACTION_RUN=2;//跑---默认
    const static size_t ACTION_TURN_L=3;//左转--默认
    const static size_t ACTION_TURN_R=4;//右转--默认
    const static size_t ACTION_STOP=5;//停止--默认
    const static size_t ACTION_PUSHUP=6;//俯卧撑
    const static size_t ACTION_UPDOWM=7;//蹲起
    const static size_t ACTION_JUMP=8;//扭屁股--无效
    const static size_t ACTION_HALLO=9;//打招呼
    const static size_t ACTION_FRONTBACK=10;//滑步
    const static size_t ACTION_DANCE=11;//跳舞
    const static size_t ACTION_OMNIWALK=12;//mini步
    const static size_t ACTION_MOONWALK_L=13;//太空步
    const static size_t ACTION_GETDOWN=14;//趴下
    const static size_t ACTION_SITDOWN=15;//坐下
    const static size_t ACTION_SHAKEHAND=16;//握手
    const static size_t ACTION_BUMPFISR=17;//碰拳
    const static size_t ACTION_REVOLVE_L = 18;//左边转圈
    const static size_t ACTION_REVOLVE_R = 19;//右边转圈
    const static size_t ACTION_BACK = 20;//后退---默认
    const static size_t ACTION_NEAR = 21;//靠近---默认
    const static size_t ACTION_TURNBACK = 22;//向后转---默认
//////////////////////////////////////////////////////////////////////////////////////////

    
    const static double P_RANGE = 0.1;//反馈幅度
    const static size_t STA_VOICE = 0;//语音命令状态
    const static size_t STA_POSE = 1; //手势命令状态
    
    #define  BIT_OFFSET 32 //动作学习偏移量
    #define  BIT_POS 16 //位置映射偏移量
    #define  FREE_TIME_ONE 60 //空闲时间 1分钟
    #define  FREE_TIME_TWO 120 //空闲时间 2分钟
    #define  BIT_MAX 65535 //动作转换最大值
}